home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / amiexpress / source / utils / copyobj / copyobj.c next >
Encoding:
C/C++ Source or Header  |  1992-12-26  |  2.0 KB  |  94 lines

  1. #include <exec/types.h>
  2. #include <libraries/dos.h>
  3. #include <workbench/workbench.h>
  4. #include <workbench/startup.h>
  5.  
  6. #include <clib/alib_protos.h>
  7. #include <clib/exec_protos.h>
  8. #include <clib/dos_protos.h>
  9. #include <clib/icon_protos.h>
  10. #include <stdlib.h>
  11. #include <stdio.h>
  12. #include <string.h>
  13. struct Library *IconBase=NULL;
  14. void sr(char *s);
  15.  
  16. char source[200];
  17. char destination[200];
  18.  
  19. main(int argc,char *argv[])
  20. {
  21.   char *s;
  22.   int i;
  23.   struct DiskObject *src;
  24.   struct DiskObject *dst;
  25.   struct Gadget *srcgad;
  26.   struct DiskObject new;
  27.   BOOL success=FALSE;
  28.   if(argc!=3)
  29.   {
  30.      printf("CopyObj version 1.0, written by Joseph Hodge\n");
  31.      printf("usage: CopyObj <source.info> <destination.info>\n");
  32.      printf("   ie: CopyObj Serial.info BBS:Node1/Serial.info\n");
  33.      printf("\n\n");
  34.      exit(0);
  35.   }
  36.   
  37.   strcpy(source,argv[1]);
  38.   strcpy(destination,argv[2]);
  39.   sr(source);
  40.   sr(destination);
  41.   i=strlen(source)-1;
  42.   while(i>=0)
  43.   {
  44.      if(source[i]=='.') break;
  45.      i--;
  46.   }
  47.   if(i) source[i]='\0';
  48. i=strlen(destination)-1;
  49.   while(i>=0)
  50.   {
  51.      if(destination[i]=='.') break;
  52.      i--;
  53.   }
  54.   if(i) destination[i]='\0';
  55.  
  56.   IconBase=OpenLibrary("icon.library",0L);
  57.   if(src=GetDiskObject(source))
  58.   {
  59.  
  60.     srcgad=(struct Gadget *)&src->do_Gadget;
  61.     if(dst=GetDiskObject(destination))
  62.     {
  63.        CopyMem(dst,&new,sizeof(struct DiskObject));
  64.        new.do_Gadget.Width=srcgad->Width;
  65.        new.do_Gadget.Height=srcgad->Height;
  66.        new.do_Gadget.Flags=srcgad->Flags;
  67.        new.do_Gadget.Activation=srcgad->Activation;
  68.        new.do_Gadget.GadgetType=srcgad->GadgetType;
  69.        new.do_Gadget.GadgetRender=srcgad->GadgetRender;
  70.        new.do_Gadget.SelectRender=srcgad->SelectRender;
  71.        PutDiskObject(destination,(struct DiskObject *)&new);
  72.        FreeDiskObject(dst);
  73.     }
  74.     else
  75.     {
  76.       PutDiskObject(destination,src);
  77.     }
  78.     FreeDiskObject(src);
  79.   }
  80.   CloseLibrary(IconBase);
  81.   exit(0);
  82. }
  83.  
  84. void sr(char *s)
  85. {
  86.    register int i;
  87.    i=strlen(s)-1;
  88.    while(i>-1)
  89.    {
  90.      if(*(s+i)<=32) *(s+i)='\0'; else break;
  91.      i--;
  92.    }
  93. }
  94.